/**题目描述:
*如何实现两个非常大的数字(已经超出了Number范围)的加法运算。
*注意由于这两个已经超过了Number范围，因此不能用Number存，这里我们选择使用字符串存储。
**思路:
*我们只要将两个数字前面补0至相同的长度，然后从低位到高位进行相加， 同时用一个变量记录进位的信息即可。
*/

function add(n1, n2){
    // 123456789
    // 000009876
    // 补全数据，使2个数据的长度一致
    let cur = 0;
    while(cur < n1.length || cur < n2.length){
        if(!n1[cur]){
            n1 = "0" + n1;
        } else if(!n2[cur]){
            n2 = "0" + n2;
        }
        cur++;
    }
    // console.log(n1, n2)

    let result = [];
    let temp = 0;
    let sum = 0;
    for(let i = n1.length -1; i >= 0; i--){
        sum = temp + +n1[i] + +n2[i];  // 这里+n1[i]的"+"是用来把数组的number类型转换为string类型。
        sum > 9 ? temp = 1 : temp = 0;
        result[i] = sum % 10;
    }
    if(temp == 1){
        result.unshift("1")
    }

    // console.log(result.join(""))
    return result.join("");
}

add("567", "897")